package com.ruijixiang.leetcode.weekly.leetcode2024.leetcode20241006;

import java.util.Arrays;

public class leetcode3309 {

    /**
     * 连接二进制表示可形成的最大数值
     * @param nums
     * @return
     */
    public int maxGoodNumber(int[] nums){
        Integer[] arr=new Integer[]{nums[0],nums[1],nums[2]};
        // 将arr排序
        Arrays.sort(arr,(a,b)->{
            int lenA=32-Integer.numberOfLeadingZeros(a);// 计算数位
            int lenB=32-Integer.numberOfLeadingZeros(b);// 计算数位
            return (b<<lenA | a)-(a<<lenB | b);
        });
        int ans=0;
        for(int x : arr){
            int lenX=32-Integer.numberOfLeadingZeros(x);// 计算数位
            ans=ans<<lenX | x;
        }
        return ans;
    }
}
